﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Abreu.Profile.Classes;
using System.Collections.ObjectModel;

namespace Abreu.Profile.ObjectClasses
{
    public class ProfileInfo
    {
        #region Class Members
        private int? _employeeId;
        private int? _sectionId;
        private int? _categoryId;
        private int? _refSectionId;
        private int? _userId;
        private int? _refCategoryId;
        private DateTime? _beginDateEmployeeUser;
        private DateTime? _endDateEmployeeUser;
        private Boolean _isMasterEmployeeUser;
        private Char _statusEmployeeUser;
        private int _departmentId;
        private int _businessUnitId;
        private String _nameSection;
        private String _docDefLangIdSection;
        private Char _statusSection;
        private String _codeBusinessUnit;
        private String _nameBusinessUnit;
        private String _businessUnitDescription;
        private int _levelBusinessUnit;
        private Char _statusBusinessUnit;
        private int _catTypeId;
        private String _nameCategory;
        private String _categoryDescription;
        private int _orderCategory;
        private Boolean _isSectionDefCat;
        private DateTime? _beginDateCat;
        private DateTime? _endDateCat;
        private Char _statusCategory;
        private String _languageIdUser;
        private int _userTypeId;
        private String _logOnNTUser;
        private String _authorizeCodeUser;
        private String _nameUser;
        private String _initialsUser;
        private String _emailUser;
        private DateTime? _beginDateUser;
        private DateTime? _endDateUser;
        private Char _statusUser;
        private Collection<PermissionProfile> _listPermission;
       
        #endregion

        #region Properties
        public int? EmployeeId
        {
            get { return _employeeId; }
            set { _employeeId = value; }
        }

        public int? SectionId
        {
            get { return _sectionId; }
            set { _sectionId = value; }
        }

        public int? CategoryId
        {
            get { return _categoryId; }
            set { _categoryId = value; }
        }

        public int? RefSectionId
        {
            get { return _refSectionId; }
            set { _refSectionId = value; }
        }

        public int? UserId
        {
            get { return _userId; }
            set { _userId = value; }
        }

        public int? RefCategoryId
        {
            get { return _refCategoryId; }
            set { _refCategoryId = value; }
        }

        public DateTime? BeginDateEmployeeUser
        {
            get { return _beginDateEmployeeUser; }
            set { _beginDateEmployeeUser = value; }
        }

        public DateTime? EndDateEmployeeUser
        {
            get { return _endDateEmployeeUser; }
            set { _endDateEmployeeUser = value; }
        }

        public Boolean IsMasterEmployeeUser
        {
            get { return _isMasterEmployeeUser; }
            set { _isMasterEmployeeUser = value; }
        }

        public Char StatusEmployeeUser
        {
            get { return _statusEmployeeUser; }
            set { _statusEmployeeUser = value; }
        }

        public int DepartmentId
        {
            get { return _departmentId; }
            set { _departmentId = value; }
        }

        public int BusinessUnitId
        {
            get { return _businessUnitId; }
            set { _businessUnitId = value; }
        }

        public String NameSection
        {
            get { return _nameSection; }
            set { _nameSection = value; }
        }

        public String DocDefLangIdSection
        {
            get { return _docDefLangIdSection; }
            set { _docDefLangIdSection = value; }
        }

        public Char StatusSection
        {
            get { return _statusSection; }
            set { _statusSection = value; }
        }

        public String CodeBusinessUnit
        {
            get { return _codeBusinessUnit; }
            set { _codeBusinessUnit = value; }
        }

        public String NameBusinessUnit
        {
            get { return _nameBusinessUnit; }
            set { _nameBusinessUnit = value; }
        }

        public String BusinessUnitDescription
        {
            get { return _businessUnitDescription; }
            set { _businessUnitDescription = value; }
        }

        public int LevelBusinessUnit
        {
            get { return _levelBusinessUnit; }
            set { _levelBusinessUnit = value; }
        }

        public Char StatusBusinessUnit
        {
            get { return _statusBusinessUnit; }
            set { _statusBusinessUnit = value; }
        }

        public int CatTypeId
        {
            get { return _catTypeId; }
            set { _catTypeId = value; }
        }

        public String NameCategory
        {
            get { return _nameCategory; }
            set { _nameCategory = value; }
        }

        public String CategoryDescription
        {
            get { return _categoryDescription; }
            set { _categoryDescription = value; }
        }

        public int OrderCategory
        {
            get { return _orderCategory; }
            set { _orderCategory = value; }
        }

        public Boolean IsSectionDefCat
        {
            get { return _isSectionDefCat; }
            set { _isSectionDefCat = value; }
        }

        public DateTime? BeginDateCat
        {
            get { return _beginDateCat; }
            set { _beginDateCat = value; }
        }

        public DateTime? EndDateCat
        {
            get { return _endDateCat; }
            set { _endDateCat = value; }
        }

        public Char StatusCategory
        {
            get { return _statusCategory; }
            set { _statusCategory = value; }
        }

        public String LanguageIdUser
        {
            get { return _languageIdUser; }
            set { _languageIdUser = value; }
        }

        public int UserTypeId
        {
            get { return _userTypeId; }
            set { _userTypeId = value; }
        }

        public String LogOnNTUser
        {
            get { return _logOnNTUser; }
            set { _logOnNTUser = value; }
        }

        public String AuthorizeCodeUser
        {
            get { return _authorizeCodeUser; }
            set { _authorizeCodeUser = value; }
        }

        public String NameUser
        {
            get { return _nameUser; }
            set { _nameUser = value; }
        }

        public String InitialsUser
        {
            get { return _initialsUser; }
            set { _initialsUser = value; }
        }

        public String EmailUser
        {
            get { return _emailUser; }
            set { _emailUser = value; }
        }

        public DateTime? BeginDateUser
        {
            get { return _beginDateUser; }
            set { _beginDateUser = value; }
        }

        public DateTime? EndDateUser
        {
            get { return _endDateUser; }
            set { _endDateUser = value; }
        }

        public Char StatusUser
        {
            get { return _statusUser; }
            set { _statusUser = value; }
        }

        public Collection<PermissionProfile> ListPermission
        {
            get { return _listPermission; }
            set { _listPermission = value; }
        }

        #endregion

        #region Constructor
        public ProfileInfo()
        {

        }

        public ProfileInfo(int? employeeId, int? sectionId, int? categoryId, int? refSectionId, int? userId,
                           int? refCategoryId, DateTime? beginDateEmployeeUser, DateTime? endDateEmployeeUser, Boolean isMasterEmployeeUser,
                           Char statusEmployeeUser, int departmentId, int businessUnitId, String nameSection, String docDefLangIdSection,
                           Char statusSection, String codeBusinessUnit, String nameBusinessUnit, String businessUnitDescription, int levelBusinessUnit,
                           Char statusBusinessUnit, int catTypeId, String nameCategory, String categoryDescription, int orderCategory,
                           Boolean isSectionDefCat, DateTime? beginDateCat, DateTime? endDateCat, Char statusCategory,
                           String languageIdUser, int userTypeId, String logOnNTUser, String authorizeCodeUser, String nameUser,
                           String initialsUser, String emailUser, DateTime? beginDateUser, DateTime? endDateUser, Char statusUser,
                           Collection<PermissionProfile> listPermission)
        {
            EmployeeId = employeeId;
            SectionId = sectionId;
            CategoryId = categoryId;
            RefSectionId = refSectionId;
            UserId = userId;
            RefCategoryId = refCategoryId;
            BeginDateEmployeeUser = beginDateEmployeeUser;
            EndDateEmployeeUser = endDateEmployeeUser;
            IsMasterEmployeeUser = isMasterEmployeeUser;
            StatusEmployeeUser = statusEmployeeUser;
            DepartmentId = departmentId;
            BusinessUnitId = businessUnitId;
            NameSection = nameSection;
            DocDefLangIdSection = docDefLangIdSection;
            StatusSection = statusSection;
            CodeBusinessUnit = codeBusinessUnit;
            NameBusinessUnit = nameBusinessUnit;
            BusinessUnitDescription = businessUnitDescription;
            LevelBusinessUnit = levelBusinessUnit;
            StatusBusinessUnit = statusBusinessUnit;
            CatTypeId = catTypeId;
            NameCategory = nameCategory;
            CategoryDescription = categoryDescription;
            OrderCategory = orderCategory;
            IsSectionDefCat = isSectionDefCat;
            BeginDateCat = beginDateCat;
            EndDateCat = endDateCat;
            StatusCategory = statusCategory;
            LanguageIdUser = languageIdUser;
            UserTypeId = userTypeId;
            LogOnNTUser = logOnNTUser;
            AuthorizeCodeUser = authorizeCodeUser;
            NameUser = nameUser;
            InitialsUser = initialsUser;
            EmailUser = emailUser;
            BeginDateUser = beginDateUser;
            EndDateUser = endDateUser;
            StatusUser = statusUser;
            ListPermission = listPermission;
        }   
        #endregion
    }
}
